package com.meilai.project.vo.finance.contractManage;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.meilai.project.entity.finance.paymentReceived.AccountReceived;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
public class ExcelContractBillSaleGroupVO {
    @ApiModelProperty("合同id")
    private Long id;

    @ApiModelProperty("1:现金 2:置换 3:半现金半置换")
    private Integer type;

    @ApiModelProperty("行业名称")
    private String industry_name;

    @ApiModelProperty("合同编号")
    private String contract_num;

    @ApiModelProperty("合同的开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate contract_begin_date;

    @ApiModelProperty("合同的结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate contract_end_date;

    @ApiModelProperty("甲方名称")
    private String party_a;

    @ApiModelProperty("客户名称/项目名称")
    private String customer_name;

    @ApiModelProperty("公司抬头")
    private String company_head;

    @ApiModelProperty("合同金额")
    private BigDecimal contract_amount;

    @ApiModelProperty("是否收到合同结算材料")
    private Boolean receive_contract;

    @ApiModelProperty("合同入档编号")
    private String contract_filing_no;

    @ApiModelProperty("往年已收金额")
    private BigDecimal amount_received_in_previous_years;

    @ApiModelProperty("往年置换金额")
    private BigDecimal displace_amount_from_previous_years;

    @ApiModelProperty("往年置换消费金额")
    private BigDecimal displace_consume_amount_from_previous_years;

    @ApiModelProperty("今年已现金金额")
    private BigDecimal amount_this_year;

    @ApiModelProperty("今年已置换金额")
    private BigDecimal displace_amount_this_year;

    @ApiModelProperty("今年已置换消费金额")
    private BigDecimal displace_consume_amount_this_year;

    @ApiModelProperty("今年开票增项金额")
    private BigDecimal additional_amount_this_year;

    @ApiModelProperty("今年应收现金金额")
    private BigDecimal amount_of_cash_receivable_for_this_year;

    @ApiModelProperty("今年应收置换消费金额")
    private BigDecimal amount_of_replacement_consumption_receivable_this_year;

    @ApiModelProperty("今年应收置换金额")
    private BigDecimal amount_replacement_receivable_this_year;

    @ApiModelProperty("维护人名称")
    private String maintenance_staff_name;

    @ApiModelProperty("负责人名称")
    private String person_in_charge_name;

    @ApiModelProperty("负责人id")
    private Long person_in_charge_id;

    @ApiModelProperty("组id")
    private Long group_id;

    @ApiModelProperty("组名称")
    private String group_name;

    @ApiModelProperty("到款信息")
    private AccountReceived accountReceived;

    @ApiModelProperty("销售单id")
    private Long bill_sale_id;

    @ApiModelProperty("销售单开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate begin_date;

    @ApiModelProperty("销售单结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate end_date;

    @ApiModelProperty("媒体形式")
    private List<MediaPointVO> mediaPointVOList;

    @ApiModelProperty("本次执行数量")
    private Long media_count;

    @ApiModelProperty("刊例总价")
    private List<MediaPointVO> mediaPriceList;

    @ApiModelProperty("折扣")
    private BigDecimal discount;

    @ApiModelProperty("媒体形式（单价）")
    private List<MediaPointVO> media_price;

    @ApiModelProperty("媒体形式（分项执行金额）")
    private List<MediaPointVO> itemMediaPrice;

    @ApiModelProperty(value = "执行金额")
    private BigDecimal execute_amount;

    @ApiModelProperty("置换金额")
    private BigDecimal displace_amount;

    @ApiModelProperty("置换消费金额")
    private BigDecimal displace_consume_amount;

    @ApiModelProperty(value = "是否开票")
    private Boolean invoice_make_out;

    @ApiModelProperty(value = "发票金额")
    private BigDecimal invoice_amount;

    @ApiModelProperty(value = "开票类目")
    private Long invoice_category_id;

    @ApiModelProperty(value = "开票类目名称")
    private String invoice_category_name;

    @ApiModelProperty(value = "增项金额")
    private BigDecimal additional_amount;

    @ApiModelProperty("收款时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate collection_time;

    @ApiModelProperty("最新的收款时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate latest_collection_time;

    @ApiModelProperty(value = "计提额")
    private BigDecimal accrued_amount;

    @ApiModelProperty(value = "实际计提额")
    private BigDecimal actual_accrued_amount;

    @ApiModelProperty(value = "代理资源费用")
    private BigDecimal proxy_resource_amount;

    @ApiModelProperty(value = "物料成本")
    private BigDecimal material_cost;

    @ApiModelProperty(value = "本年业务费(本年客提)")
    private BigDecimal operating_expenses_for_this_year;

    @ApiModelProperty(value = "提成")
    private BigDecimal commission;

    @ApiModelProperty(value = "公司维护费")
    private BigDecimal company_maintenance_fee;

    @ApiModelProperty(value = "客户维护费")
    private BigDecimal customer_maintenance_fees;

    @ApiModelProperty("已执行金额")
    private BigDecimal executed_amount;

    @ApiModelProperty("未执行金额")
    private BigDecimal unExecuted_amount;

    @ApiModelProperty("付款id")
    private Long received_id;
}
